/*
 * Copyright (C) 2011 Project R'yleh Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.Arkham;


public class Armory {

	//Weapons
	   //DullPencil
	   //Pencil
	   //MechanicalPencil
	   //Pen
	   //Calculator
	   //ScientificCalculator
	   //GraphingCalculator
	//Shields
	   //UsedEraser
	   //Eraser
	   //MechanicalEraser
	//Headgear
	   //DunceCap
	   //BallCap
	   //Beanie
	//Armor
	   //StreetCloths
	   //SchoolUniform
	   //DressSchoolUniform
	//Feet
	   //Sneakers
	   //UniformShoes
	//Accessories
	   //ClassRing
	//usable
	   //ExtraCreditHomework
	//other
	   //None     very important item, do not delete or alter
	
	/////////////
	///DEVELOPEMENT NOTE
	/////////////
	//  When creating a new item.  place the item in the list above.
	//  Then create a method for the item called
	//           public static Item <item name>(){}
	//  This allows each item to be its own instance.  And in the
	//  method of seeing if an item is equiped, eases this ability.
	//          Thank you
	//            --Charles
	//	
	//	You must add this into GameFile.java getItem method
	//
	//////////////
	
	
	public static final Item None = createNone();
	
    /////////////
	///WEAPONS///
    /////////////
	
	public static Item createNone(){
		Item item = new Item();
		
		item.setName("Empty");
		for(int i=0; i<Constants.EQUIPPABLE_AREAS; i++)
		   item.setEquipableArea(i, true);
		
		return item;
	}
	
	public static Item DullPencil(){
		Item item = new Item();
		
		item.setName("Dull Pencil");
		item.setPurchasePrice(2);
		item.setSellPrice(1);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.WEAPON, true);
		item.setAttackPowerModifier(5);
		item.setHitPercentageModifier(70);
		
		return item;
	}
	
	public static Item Pencil(){
		Item item = new Item();
		
		item.setName("Pencil");
		item.setPurchasePrice(10);
		item.setSellPrice(5);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.WEAPON, true);
		item.setAttackPowerModifier(10);
		item.setHitPercentageModifier(80);
		
		return item;
	}
	
	public static Item MechanicalPencil(){
		Item item = new Item();
		
		item.setName("Mechanical Pencil");
		item.setPurchasePrice(25);
		item.setSellPrice(5);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.WEAPON, true);
		item.setAttackPowerModifier(12);
		item.setHitPercentageModifier(80);
		
		return item;		
	}

	public static Item Pen(){
		Item item = new Item();
		
		item.setName("Pen");
		item.setPurchasePrice(100);
		item.setSellPrice(50);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.WEAPON, true);
		item.setAttackPowerModifier(15);
		item.setHitPercentageModifier(85);
		
		return item;
	}
	
	public static Item Calculator(){
		Item item = new Item();
		
		item.setName("Calculator");
		item.setPurchasePrice(10);
		item.setSellPrice(2);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.WEAPON, true);
		item.setMagicModifier(2);
		item.setHitPercentageModifier(50);
		
		return item;
	}

	public static Item ScientificCalculator(){
		Item item = new Item();
		
		item.setName("Scientific Calculator");
		item.setPurchasePrice(25);
		item.setSellPrice(5);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.WEAPON, true);
		item.setMagicModifier(5);
		item.setHitPercentageModifier(60);
		
		return item;
	}

	public static Item GraphingCalculator(){
		Item item = new Item();
		
		item.setName("Graphing Calculator");
		item.setPurchasePrice(100);
		item.setSellPrice(50);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.WEAPON, true);
		item.setMagicModifier(15);
		item.setHitPercentageModifier(50);
		
		return item;
	}
	
    ///////////////
	////SHIELDS////
    ///////////////
	public static Item UsedEraser(){
		Item item = new Item();
		
		item.setName("Used Eraser");
		item.setPurchasePrice(2);
		item.setSellPrice(1);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.ARMOR, true);
		item.setDefenseModifier(1);
		item.setEvadeModifier(1);
		item.setMagicDefenseModifier(1);
		
		return item;
	}
	
	public static Item Eraser(){
		Item item = new Item();
		
		item.setName("Eraser");
		item.setPurchasePrice(10);
		item.setSellPrice(5);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.ARMOR, true);
		item.setDefenseModifier(3);
		item.setEvadeModifier(3);
		item.setMagicDefenseModifier(2);
		
		return item;
	}
	
	public static Item MechanicalEraser(){
		Item item = new Item();
		
		item.setName("Mechanical Eraser");
		item.setPurchasePrice(70);
		item.setSellPrice(35);
		item.setEquipableArea(Constants.R_HAND, true);
		item.setEquipableArea(Constants.L_HAND, true);
		item.setItemType(Constants.ARMOR, true);
		item.setDefenseModifier(5);
		item.setEvadeModifier(7);
		item.setMagicDefenseModifier(7);
		
		return item;
	}

	////////////////
	////HEADGEAR////
	////////////////
	
	public static Item DunceCap(){
		Item item = new Item();
		
		item.setName("Dunce Cap");
		item.setPurchasePrice(2);
		item.setSellPrice(1);
		item.setEquipableArea(Constants.HEAD, true);
		item.setItemType(Constants.ARMOR, true);
		item.setDefenseModifier(1);
		item.setEvadeModifier(1);
		item.setMagicDefenseModifier(1);
		
		return item;
	}	

	public static Item BallCap(){
		Item item = new Item();
		
		item.setName("Ball Cap");
		item.setPurchasePrice(50);
		item.setSellPrice(25);
		item.setEquipableArea(Constants.HEAD, true);
		item.setDefenseModifier(2);
		item.setEvadeModifier(4);
		item.setMagicDefenseModifier(4);
		
		return item;
	}	
	
	public static Item Beanie(){
		Item item = new Item();
		
		item.setName("Beanie");
		item.setPurchasePrice(200);
		item.setSellPrice(100);
		item.setEquipableArea(Constants.HEAD, true);
		item.setDefenseModifier(3);
		item.setEvadeModifier(5);
		item.setMagicDefenseModifier(3);
		
		return item;
	}		
	
	/////////////
	////ARMOR////
	/////////////
	
	public static Item StreetCloths(){
		Item item = new Item();
		
		item.setName("Street Clothes");
		item.setPurchasePrice(10);
		item.setSellPrice(5);
		item.setEquipableArea(Constants.BODY, true);
		item.setDefenseModifier(1);
		item.setEvadeModifier(0);
		item.setMagicDefenseModifier(0);
		
		return item;
	}	
	
	public static Item SchoolUniform(){
		Item item = new Item();
		
		item.setName("School Uniform");
		item.setPurchasePrice(25);
		item.setSellPrice(10);
		item.setEquipableArea(Constants.BODY, true);
		item.setDefenseModifier(2);
		item.setEvadeModifier(1);
		item.setMagicDefenseModifier(1);
		
		return item;
	}	

	public static Item DressSchoolUniform(){
		Item item = new Item();
		
		item.setName("Dress School Uniform");
		item.setPurchasePrice(175);
		item.setSellPrice(85);
		item.setEquipableArea(Constants.BODY, true);
		item.setDefenseModifier(3);
		item.setEvadeModifier(3);
		item.setMagicDefenseModifier(3);
		
		return item;
	}	
	
	///////////////////
	////ACCESSORIES////
	///////////////////
	
	public static Item ClassRing(){
		Item item = new Item();
		
		item.setName("Class Ring");
		item.setPurchasePrice(60);
		item.setSellPrice(30);
		item.setEquipableArea(Constants.ACC, true);
		item.setDefenseModifier(2);
		item.setEvadeModifier(7);
		item.setMagicDefenseModifier(3);
		
		return item;
	}	
	
	////////////
	////FEET////
	////////////

	
	public static Item Sneakers(){
		Item item = new Item();
		
		item.setName("Sneakers");
		item.setPurchasePrice(30);
		item.setSellPrice(15);
		item.setEquipableArea(Constants.FEET, true);
		item.setAgilityModifier(2);
		
		return item;
	}	
	
	public static Item UniformShoes(){
		Item item = new Item();
		
		item.setName("School Uniform Shoes");
		item.setPurchasePrice(30);
		item.setSellPrice(15);
		item.setEquipableArea(Constants.FEET, true);
		item.setAgilityModifier(1);
		item.setMagicDefenseModifier(1);
		
		return item;
	}	
	
    //////////////
	////USABLE////
    //////////////
	public static Item ExtraCreditHomework(){
		Item item = new Item();
		
		item.setName("Extra Credit Homework");
		item.setPurchasePrice(10);
		item.setSellPrice(2);
		item.setItemType(Constants.USABLE_CONSUMABLE, true);
		
		return item;
	}
}
